Aller au contenu principal

Cours - l'environnement du shell, variables et aliases

Variables d'envionnement

Lorsque vous êtes dans un shell, il existe des variables d'environnement qui définissent certains comportements.

Par exemple, la variable 'HOME' contient /home/padawan et corresponds à l'endroit où cd retourne par défaut (si pas de dossier donné en argument)

Autre exemples :

SHELL : /bin/bash (généralement)
LANG, LC_ALL, ... : langue utilisée par les messages
USER, USERNAME : nom d'utilisateur

Changer une variable d'envionnement

Exemple :

HOME=/usr/cache/

Afficher une variable

$ echo $HOME
/usr/cache/

Lister les variables d'envionnement

env permet de lister les variables d'environnement

$ env
LC_ALL=en_US.UTF-8
HOME=/home/alex
LC_MONETARY=fr_FR.UTF-8
TERM=rxvt-unicode-256color
[...]

On l'utilise généralement avec grep (voir cours suivant) pour trouver ce qu'on cherche : env | grep HOME

Personnaliser l'invite de commande

  • La variable PS1 décrit l'apparence de l'invite de commande !
  • Généralement, PS1 vaut : \u@\h:\w$
  • \u corresponds au nom d'utilisateur
  • \h corresponds au nom de la machine (host)
  • \w corresponds au repertoire de travail (working directory)
  • \n corresponds ... à un retour à la ligne !

PS2 corresponds à l'invite de commande de deuxième niveau !

Ecrire du texte en couleur

(Syntaxe absolument abominable :'( !)

echo -e "\033[31mCeci est en rouge\033[0m"
echo -e "\033[32mCeci est en vert\033[0m"
echo -e "\033[33mCeci est en jaune\033[0m"
echo -e "\033[7mCeci est surligné\033[0m"
echo -e "\033[31;1;7;6mCeci est surligné rouge gras surligné clignotant\033[0m"

Couleurs : 30 à 38 Effets : 0 à 7

On parle d'ANSI color codes c'est affreux car c'est un vieux truc historique des terminaux: https://en.wikipedia.org/wiki/ANSI_escape_code

PS1 en couleur ...

PS1="\[\033[31;1;7;6m\]\u\[\033[0m\]@\h:\w$ "

N.B. : pour les couleurs dans le PS1, ne pas oublier d'ajouter des \[ et \] autour des machines pour les couleurs ... sinon le terminal buggera à moitié...

Définir des aliases

Un alias est un nom "custom" pour une commande et des options

alias ll='ls -l'
alias rm='rm -i'
alias ls='ls --color=auto'

On peut connaître les alias existants avec juste alias

(Mauvaise blague : définir alias cd='rm -r' !)

Les fichiers de profil

  • Le fichier ~/.bashrc est lu à chaque lancement de shell
  • Il permet de définir des commandes à lancer à ce moment
  • Par exemple, des alias à définir ou des variables à changer...
  • Pour appliquer les modifications, il faut faire source ~/.bashrc

Autres fichiers de profils (pour les shell interactifs ie quand on se loggue dans un tty):

  • ~/.profile :
  • ~/bash_profile :